using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ACME.Northwind.DataTransfer;

namespace ACME.Northwind.Service.Interfaces
{
	/// <summary>
	/// The proxy factory that is used for all Proxy implementation to create Data Transfer Objects (DTO)
	/// </summary>
	/// <typeparam name="T"></typeparam>
	public partial interface IProxyFactory<T> where T : IDTO
	{
		/// <summary>
		/// Get a specific proxy implementation
		/// </summary>		
		IService<T> GetReadOnlyProxy();
		/// <summary>
		/// Get a specific persistable proxy implementation
		/// </summary>		
		IPersistableService<T> GetProxy();
	}
}
